package models

import "time"

/**
 * @Author: zhaobin
 * @Description TODO
 * @Date: 2022-05-20 11:46
 */

type Order struct {
	Id          int64     `json:"id"`
	OrderId     string    `json:"order_id"`
	UserId      int64     `json:"user_id"`
	AllPrice    float64   `json:"all_price"`
	Phone       string    `json:"phone"`
	Name        string    `json:"name"`
	Address     string    `json:"address"`
	PayStatus   int       `json:"pay_status"`   // 支付状态： 0 表示未支付     1 已经支付
	PayType     int       `json:"pay_type"`     // 支付类型： 0=>表示未支付，1=>alipay，2=>wechat，3=>在线支付
	OrderStatus int       `json:"order_status"` // 订单状态： 0=>已下单，1=>已付款，2=>已发货，3=>已收货
	CreatedAt   time.Time `json:"created_at"`   // 列名是 `created_at`
	UpdatedAt   time.Time `json:"updated_at"`   // 列名是 `updated_at`
	//PayTime          int //支付时间
	//DistributionTime int //配货时间
	//ExwarehouseTime  int //出库时间
	//SuccessfulTime   int //交易成功时间
	//CancelTime       int //取消时间
	//ReturnTime       int //退款时间
	//LogisticsCompany int //物流公司
	//WaybillNo        int //运单号
	//其他的字段
	OrderItem []OrderItem `gorm:"foreignKey:OrderId;references:OrderId" json:"order_item"`
}

func (Order) TableName() string {
	return "order"
}

// CreateOrderParam 创建订单传入的参数
type CreateOrderParam struct {
	GoodsList []Cart  `json:"goods_list"` // 商品信息
	Address   Address `json:"address"`    // 地址信息
	UserId    int64   `json:"user_id"`    // 用户信息
	AllPrice  float64 `json:"all_price"`
}

// OrderPageParam 订单分页相关参数
type OrderPageParam struct {
	Query    string `form:"query" json:"query"`
	PageNum  int    `form:"page_num" json:"query"`
	PageSize int    `form:"page_size" json:"query"`
}

type OrderResponse struct {
	Total     int64   `json:"total"`
	OrderList []Order `json:"order_list"`
}
